更新时间:2024-06-01 11:23
swf(shock wave flash)是Macromedia(现已被ADOBE公司收购)公司的动画设计软件Flash的专用格式,被广泛应用于网页设计、动画制作等领域,swf文件通常也被称为Flash文件。swf普及程度很高,现在超过99%的网络使用者都可以读取swf档案。这个档案格式由FutureWave创建,后来伴随着一个主要的目标受到Macromedia支援:创作小档案以播放动画。计划理念是可以在任何操作系统和浏览器中进行,并让网络较慢的人也能顺利浏览。swf 可以用Adobe Flash Player打开,浏览器必须安装Adobe Flash Player插件。
SWF是一种基于矢量的Flash动画文件格式,一般用FLASH软件创作并生成SWF文件格式,也可以通过相应软件将PDF等类型转换为SWF格式。SWF格式文件广泛用于创建吸引人的应用程序,它们包含丰富的视频、声音、图形和动画。可以在Flash中创建原始内容或者从其它Adobe应用程序(如Photoshop或Illustrator)导入它们,快速设计简单的动画,以及使用Adobe AcitonScript 3.0开发高级的交互式项目。设计人员和开发人员可使用它来创建演示文稿、应用程序和其它允许用户交互的内容。Flash可以包含简单的动画、视频内容、复杂演示文稿和应用程序以及介于它们之间的任何内容。通常,使用Flash创作的各个内容单元称为应用程序,即使它们可能只是很简单的动画。您也可以通过添加图片、声音、视频和特殊效果,构建包含丰富媒体的Flash应用程序。
如何播放SWF:
可以利用FLASH控件实现播放FLASH的SWF文件,常用的第三方软件(如:实用Flash播放器、超级Flash播放器、SWF Flash Player)可以直接在主流下载站下载后并安装,即可使用。
第1节
swf文件的整体结构是 header + body的组成。
文件的开始是一个[文件头]
它的结构如下:
字节 名称 说明
1 Signature
“F”表示非加密格式,”C”表示加密格式
1 Signature “W”无特殊意义
1 Signature “S”无特殊意义
1 Version 版本号,它表示对应播放器版本
4 FileLength 整个文件长度,低位在前
N FrameSize
RECT结构体,表示屏幕大小,具体结构和长度根据数据变化,分析方法另外讨论。
2 FrameRate 帧频,默认为12,高位在前
2 FrameCount
帧数,表明文件根下的帧数,低位在前
以上是swf中,最简单的一个tag,一个完整的swf文件是由很多独立的tag组成的。每一个tag都包括一个头和一个数据体,头有2种类型,短tag型和长tag型。
短tag型由2byte构成,前10个bit表示tag类型,后6个bit表示tag长度。
长tag型由6byte构成,前10个bit表示tag类型,后6个bit固定为全1,后4个byte代表tag长度。
tag的长度不同于文件头的长度FileLength,它是除去tag头后的长度。
(另外)只有非加密的swf文件可以直接用以上的方法解析,加密的文件需要另外增加一步处理。
第2节
前节说明了swf文件是由1个head和1个body构成的。
并且解析了header的结构,和一个tag的header部分的简单说明。
下面余下的就是swf文件的body了。
整个文件body是由大量的tag组成的,通过分析tag的head部分,可以立刻知道这个tag的类型代码和长度。
如果你无法识别这个tag的类型,也可以利用tag的长度,直接跳过这个tag。
这种方式保证了版本的兼容性,即使出现了新的tag,老版本的播放器还是能够解析完整个swf文件而不出现错误,大不了就是不能提供新的功能而已。
SWF文件格式支持三个基本类型的填充。
实心填充
SWF一个简单的RGB或RGBA颜色填充。一个alpha值255指完全不透明的填充。SWF一个alpha值为零意味着完全透明填充。0和255之间的任何数字,将部分透明。
渐变填充
位图填充
SWF位图填充是指一个位图character Id来填充。
SWF文件可以通过PDF等类型的文件转换而来,事实上我们往往通过将doc、ppt、PDF等类型转换为SWF类型来实现在线预览功能。常用的swf格式转换器有FlashPrinter,swftools等。FlashPrinter采用虚拟打印机的形式,可以直接将doc、ppt等类型的文件转换为SWF格式。Swftools只能将PDF转换为SWF格式,对于doc等类型的转换需要先转变为PDF格式。